﻿using System.Collections.Generic;

namespace Reckoning
{
    /// <summary>
    /// Interface for count filter
    /// </summary>
    public interface ICountFilter
    {
        /// <summary>
        /// Compute formatted word count info
        /// </summary>
        /// <param name="countOpt">counting options</param>
        /// <param name="rawCounts">raw word counts</param>
        /// <param name="totalWordCount">total words</param>
        /// <param name="finalCounts">formatted word count info</param>        
        /// <param name="referenceDataOK">whether reference data was read</param>  
        void Run(CountOptions countOpt,
                 Dictionary<string, uint> rawCounts,
                 uint totalWordCount,
                 out List<WordCountInfo> finalCounts,
                 out bool referenceDataOK);        
    }
}
